import URL from '../net/url.js';
import base64 from 'base-64';
import DeviceInfo from 'react-native-device-info';

let instance = null;
export default class UserStateInformation{
    userID = '';
    myGatherStateInformationTime = '';
    myOS = '';
    myPhoneBrand = '';
    myPhoneResolution = '';
    myAppVersion = '';

    constructor() {  
        if(!instance){  
              instance = this;  
        }  
        return instance;  
    }



    getcurrentTime() {
        var date = new Date();
        var seperator1 = "-";
        var seperator2 = ":";
        var month = date.getMonth() + 1;
        var strDate = date.getDate();
        if (month >= 1 && month <= 9) {
        month = "0" + month;
        }
        if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
        }
        var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
        + " " + date.getHours() + seperator2 + date.getMinutes()
        + seperator2 + date.getSeconds();
        return currentdate;
    }
   

    uploadStateInformation(userState) {
        
       
        let keymap = {
            method: 'POST',
            headers: { 
                       'Content-Type':'application/json;charset=UTF-8',
                     },    
            body : JSON.stringify({
                "userID": userState.userID,
                "myGatherStateInformationTime":userState.myGatherStateInformationTime,
                "myOS":userState.myOS,
                "myPhoneBrand":userState.myPhoneBrand,
                "myPhoneResolution":userState.myPhoneResolution,
                "myAppVersion":userState.myAppVersion
            })
           
           
        };


        return new Promise((resolve,reject) => {
            
            fetch(URL.uploadStateInfo,keymap).then((result) => {
               
                result.text().then(
                    (resultData) => { 
                    }
                ).catch(
                    (error) => { reject(error); })
            }).catch((err) => { reject(err) })
        });           
    }  
         
}
  